perm filename MOP.TOC[CLS,LSP] blob
sn#850334 filedate 1987-12-14 generic text, type T, neo UTF8
!4!!3--1
!0Common Lisp Object System Specification!!3--1
!13. Metaobject Protocol!!3--1
!4CONTENTS!!3--2
!2Status of Document!!3--5
!2Terminology!!3--6
!2Introduction!!3--7
!2Class Organization in the CLOS Kernel!!3--9
!2The Classes in the CLOS Kernel!!3--10
!3standard-class!!3--11
!3forward-referenced-class!!3--11
!3built-in-class!!3--11
!3structure-class!!3--12
!3funcallable-standard-class!!3--12
!3standard-slot-description!!3--12
!3standard-class-slot-description!!3--12
!3standard-method!!3--12
!3standard-accessor-method!!3--13
!3standard-reader-method!!3--13
!3standard-writer-method!!3--13
!3standard-generic-function!!3--13
!2The Named Class Definition Protocol!!3--15
!3expand-defclass!!3--15
!4Example of specializing expand-defclass!!3--17
!3add-named-class!!3--17
!3class-for-redefinition!!3--18
!4Example Specialization of class-for-redefinition!!3--18
!2The Slot Parsing Protocol!!3--20
!3slot-description-class!!3--20
!3make-instance of slot-descriptions!!3--20
!2The Class Update Protocol!!3--21
!3Update Entry!!3--21
!4update-class!!3--21
!4default-class-supers!!3--23
!4Example of specializing default-class-supers!!3--23
!4check-super-metaclass-compatibility!!3--24
!4legal-class-option-p!!3--24
!3Update Propagation!!3--24
!4propagate-class-update!!3--24
!3Local Class Updating!!3--25
!4update-class-locally!!3--25
!4class-has-instances-p!!3--26
!4compute-class-precedence-list!!3--26
!3Finalizing Class Inheritance!!3--27
!4finalize-inheritance!!3--27
!3Adding and Removing Accessor Methods!!3--27
!4add-reader-method!!3--28
!4add-writer-method!!3--28
!4remove-reader-method!!3--28
!4remove-writer-method!!3--29
!2The Slot Inheritance Protocol!!3--30
!4Example of Specializing compute-effective-slot-description!!3--30
!2The Instance Structure Protocol!!3--32
!3Instance Allocation!!3--32
!3Index Level Instance Allocation!!3--33
!3Symbolic Level Instance Allocation!!3--33
!4compute-instance-size!!3--33
!3Slot Level Instance Allocation!!3--34
!4allocate-instance!!3--34
!3Instance Access!!3--34
!3Index Level Instance Access!!3--34
!3Symbolic Level Instance Access!!3--35
!3index-in-instance!!3--35
!3Optimized Symbolic Level Instance Access!!3--36
!3Slot Level Instance Access!!3--37
!3slot-value-using-class!!3--37
!3slot-boundp-using-class!!3--38
!3slot-makunbound-using-class!!3--38
!3slot-exists-p-using-class!!3--38
!2The Instance Access Optimization Protocol!!3--41
!2The Named Method Definition Protocol!!3--43
!4Example of specializing expand-defmethod!!3--44
!2The Generic Function Update Protocol!!3--45
!2The Method Lookup Protocol!!3--46
!3Support Functions for Method Lookup!!3--47
!3Example of using the Method Lookup Protocol!!3--48